package com.cy.pj.sys.dao;

import com.cy.pj.sys.pojo.SysUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface SysUserDao {

    /**
     * 基于用户名查询用户信息(登录时需要这个信息)
     * @param username
     * @return
     */
    @Select("select * from sys_users where username=#{username}")
    public SysUser selectUserByUsername(String username);

    /**
     * 分页查询
     * @param entity 封装了查询条件的对象
     * @return 查询到的用户信息，表中的一行记录映射为内存中一个SysUser对象
     */
    public List<SysUser> selectUsers(SysUser entity);

    /**
     * 通过id查询
     * @param id
     * @return
     */
    public SysUser selectById(Integer id);

    /**
     * 保存用户自身信息(会更新密码)
     * @param entity
     * @return
     */
    public int insertUser(SysUser entity);

    /**
     * 更改用户自身信息(这里的更新不会更新密码)
     * @param entity
     * @return
     */
    public int updateUser(SysUser entity);

    /**
     * 禁用和启用操作
     * @param id
     * @param valid
     * @param modifiedUser
     * @return
     */
    @Update("update sys_users set valid=#{valid},modifiedTime=now(),modifiedUser=#{modifiedUser} where id=#{id}")
    public int validById(@Param("id") Integer id,@Param("valid") Integer valid,@Param("modifiedUser") String modifiedUser);
}
